home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
taropyon
/
he386
/
he386.cci
< prev
next >
Wrap
Text File
|
1994-09-20
|
17KB
|
964 lines
# 1 "main.c"
# 1 "main.c"
# 2 "midilib.c"
char _OUT_OF_STRING_SPACE[24] = "Out of string space!";
# 8 "midilib.c"
int make_sysEx( char *buf, unsigned int siz, unsigned char *dat )
{
int i, len;
char *p, tmp[8];
p = buf;
strcpy( p, "@EXCL(");
p += 6;
for ( i = 1; i < siz - 1; ++i )
{
sprintf(tmp, "%d", dat[i] & 0xFF );
strcpy(p,tmp); p += strlen(tmp);
if ( i < siz - 2 )
{
*p = ',';
++p;
}
}
*p = ')'; ++p;
*p = '\0';
return (strlen(buf));
}
# 2 "gm.c"
char *GmFuncTbl[2] =
{
"exGM_systemOn" ,
(0)
};
int GM_macroInit( char *sqr )
{
int i;
for ( i = 0; GmFuncTbl[i] != (0); ++i )
MMac_extDefine( sqr, GmFuncTbl[i], GmFuncTbl[i], (4), (0) );
MMac_extDefine( sqr, "_GM_MACRO_DEFINED", "", (0) , (0) );
return ((0));
}
# 25 "gm.c"
int exGM_systemOn( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
char dat[32], tmp[256];
unsigned siz;
dat[0] = 0xF0;
dat[1] = 0x7E;
dat[2] = 0x7F;
dat[3] = 0x09;
dat[4] = 0x01;
dat[5] = 0xF7;
siz = 6;
siz = make_sysEx(tmp, siz, dat );
if ( siz >= bufSiz )
{
MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
return ((-1));
}
memcpy( buf, tmp, siz );
return (siz);
}
# 8 "gs.c"
int GsDeviceID = 16;
char *GsFuncTbl[32] =
{
"GS_setDeviceNumber" ,
"sysEx_gs" ,
"sysEx_sc55" ,
"exGs_reset" ,
"exGs_masterVolume" ,
"exGs_partialReserve",
"exGs_reverbMacro" ,
"exGs_reverbPara" ,
"exGs_chorusMacro" ,
"exGs_chorusPara" ,
"exGs_rxChannel" ,
"exGs_assignMode" ,
"exGs_rymMap" ,
"exGs_mod" ,
"exGs_bend" ,
"exGs_caf" ,
"exGs_paf" ,
"exGs_cc1number" ,
"exGs_cc2number" ,
"exGs_cc1control" ,
"exGs_cc2control" ,
"exSC55_msgSet" ,
"exSC55_dotSet" ,
"SC55_initDotBuffer" ,
"SC55_setDotBuffer" ,
"exSC55_dotBuffer" ,
(0)
};
int GS_macroInit( char *sqr )
{
int i;
GsDeviceID = 17 - 1;
for ( i = 0; GsFuncTbl[i] != (0); ++i )
MMac_extDefine( sqr, GsFuncTbl[i], GsFuncTbl[i], (4), (0) );
MMac_extDefine( sqr, "_GS_MACRO_DEFINED", "", (0) , (0) );
return ((0));
}
# 64 "gs.c"
int GS_setDeviceNumber( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
int n;
if ( argc < 1 )
{
_ERR: MM_setErrMsg(sqr,"[GS] device number error!");
return ((-1));
}
n = atoi(argv[0]) - 1;
if ( n < 1 || n > 32 )
goto _ERR;
GsDeviceID = n - 1;
return (0);
}
# 84 "gs.c"
int roland_excl( unsigned char *buf, int deviceID, int modelID, unsigned int adr, unsigned int siz, unsigned char *dat )
{
int i, sum;
buf[0] = 0xF0;
buf[1] = 0x41;
buf[2] = deviceID;
buf[3] = modelID;
buf[4] = 0x12;
buf[5] = (adr>>16); buf[6] = (adr>>8); buf[7] = (adr);
sum = buf[5] + buf[6] + buf[7];
for ( i = 0; i < siz; ++i )
{
buf[8+i] = dat[i];
sum += dat[i];
}
sum = (0x80 - (sum & 0x7F)) & 0x7F;
buf[8+siz] = sum;
buf[9+siz] = 0xF7;
return (siz + 10);
}
int gs_genMML( char *sqr, unsigned int bufSiz, char *buf, unsigned int adr, unsigned int siz, char *dat)
{
int ret;
char excl[256], tmp[1024];
ret = roland_excl( excl, GsDeviceID, (0x42), adr, siz, dat );
ret = make_sysEx( tmp, ret, excl );
if ( ret >= bufSiz )
{
MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
return ((-1));
}
memcpy( buf, tmp, ret );
return (ret);
}
int sc55_genMML( char *sqr, unsigned int bufSiz, char *buf, unsigned int adr, unsigned int siz, char *dat)
{
int ret;
char excl[256], tmp[1024];
ret = roland_excl( excl, GsDeviceID, (0x45), adr, siz, dat );
ret = make_sysEx( tmp, ret, excl );
if ( ret >= bufSiz )
{
MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
return ((-1));
}
memcpy( buf, tmp, ret );
return (ret);
}
# 146 "gs.c"
int sysEx_gs( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
char dat[128];
unsigned int adr, siz;
int i, ret;
if ( argc < 3 )
{
MM_setErrMsg(sqr,"GS system exclusive error!");
return ((-1));
}
sscanf(argv[0],"%x",&adr);
siz = atoi(argv[1]);
if ( siz < 1 || argc < 2 + siz )
return ((-1));
for ( i = 0; i < siz; ++i )
dat[i] = atoi(argv[2+i]);
return gs_genMML( sqr, bufSiz, buf, adr, siz, dat );
}
# 173 "gs.c"
int sysEx_sc55( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
char dat[128];
unsigned int adr, siz;
int i, ret;
if ( argc < 3 )
{
MM_setErrMsg(sqr,"SC-55 system exclusive error!");
return ((-1));
}
sscanf(argv[0],"%x",&adr);
siz = atoi(argv[1]);
if ( siz < 1 || argc < 2 + siz )
return ((-1));
for ( i = 0; i < siz; ++i )
dat[i] = atoi(argv[2+i]);
return sc55_genMML( sqr, bufSiz, buf, adr, siz, dat );
}
# 198 "gs.c"
int exGs_reset( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
char dat[4];
int ret;
if ( argc != 0 )
{
MM_setErrMsg(sqr,"[GS] \"reset\" error!");
return((-1));
}
dat[0] = 0x00;
return gs_genMML( sqr, bufSiz, buf, 0x40007F, 1, dat );
}
# 219 "gs.c"
int exGs_masterVolume( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
char dat[4];
int ret;
if ( argc != 1 )
{
MM_setErrMsg(sqr,"[GS] Master volume error!");
return((-1));
}
dat[0] = atoi(argv[0]);
return gs_genMML( sqr, bufSiz, buf, 0x400004, 1, dat );
}
# 240 "gs.c"
int exGs_partialReserve( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
int i;
char dat[32];
int ret;
if ( argc != 16 )
{
MM_setErrMsg(sqr,"[GS] Partial reserve error!");
return((-1));
}
for ( i = 0; i < 16; ++i )
dat[i] = atoi(argv[i]);
return gs_genMML( sqr, bufSiz, buf, 0x400110, 16, dat );
}
# 263 "gs.c"
int exGs_reverbMacro( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
char dat[4];
int ret;
if ( argc != 1 )
{
MM_setErrMsg(sqr,"[GS] Reverb macro error!");
return((-1));
}
dat[0] = atoi(argv[0]);
return gs_genMML( sqr, bufSiz, buf, 0x400130, 1, dat );
}
# 284 "gs.c"
int exGs_reverbPara( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
int i;
char dat[8];
int ret;
if ( argc != 6 )
{
MM_setErrMsg(sqr,"[GS] Reverb parameter error!");
return((-1));
}
for ( i = 0; i < 6; ++i )
dat[i] = atoi(argv[i]);
return gs_genMML( sqr, bufSiz, buf, 0x400131, 6, dat );
}
# 307 "gs.c"
int exGs_chorusMacro( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
char dat[4];
int ret;
if ( argc != 1 )
{
MM_setErrMsg(sqr,"[GS] Chorus macro error!");
return((-1));
}
dat[0] = atoi(argv[0]);
return gs_genMML( sqr, bufSiz, buf, 0x400138, 1, dat );
}
# 328 "gs.c"
int exGs_chorusPara( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
int i;
char dat[8];
int ret;
if ( argc != 7 )
{
MM_setErrMsg(sqr,"[GS] Chorus parameter error!");
return((-1));
}
for ( i = 0; i < 7; ++i )
dat[i] = atoi(argv[i]);
return gs_genMML( sqr, bufSiz, buf, 0x400139, 7, dat );
}
int GsPartTbl[16] = {1,2,3,4,5,6,7,8,9,0,10,11,12,13,14,15};
int gs_getpart_n( int part )
{
if ( part < 1 || part > 16 )
return (-1);
return (GsPartTbl[part-1]);
}
# 361 "gs.c"
int exGs_rxChannel( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
int i, part, ch;
char dat[4];
int ret;
if ( argc != 2 )
{
_PARA_ERR:
MM_setErrMsg(sqr,"[GS] 'Rx.channel' error!");
return((-1));
}
if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
goto _PARA_ERR;
ch = atoi(argv[1]);
if ( ch < 0 || ch > 16 )
goto _PARA_ERR;
if ( ch > 0 )
--ch;
else
ch = 0;
dat[0] = ch;
return gs_genMML( sqr, bufSiz, buf, ((0x401002)+((part)<<8)), 1, dat );
}
# 393 "gs.c"
int exGs_assignMode( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
int i, part;
char dat[4];
int ret;
if ( argc != 2 )
{
_PARA_ERR:
MM_setErrMsg(sqr,"[GS] 'Assign mode' error!");
return((-1));
}
if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
goto _PARA_ERR;
dat[0] = atoi(argv[1]);
return gs_genMML( sqr, bufSiz, buf, ((0x401014)+((part)<<8)), 1, dat );
}
# 14 "gs_cc.c"
int exGs_mod( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
{
int part, v;
char dat[16];
int ret;
if ( argc != 12 )
{
_PARA_ERR:
MM_setErrMsg(sqr,"[GS] 'MOD control' error!");
return((-1));
}
if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
goto _PARA_ERR;
v = atoi(argv[1]);
if ( v